package by.bsu.touragency.tag;

import java.io.IOException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import org.apache.log4j.Logger;

import by.bsu.touragency.command.guest.ConfigurationManager;
import by.bsu.touragency.db.beans.InformationClient;
import by.bsu.touragency.db.beans.Person;
import by.bsu.touragency.db.dao.InformationClientDAO;
import by.bsu.touragency.db.dao.PersonDAO;


public class ClientInfoTag extends BodyTagSupport {
	
	private static Logger logger=Logger.getLogger("log");

	private static final long serialVersionUID = -4803241311077357656L;

	private PersonDAO cd = new PersonDAO();
	private Person c = new Person();
	private InformationClientDAO cid = new InformationClientDAO();
	private InformationClient ci = new InformationClient();
	private String login;
	
	public int doStartTag() throws JspTagException {
		logger.info("Client info tag do start");
		c = cd.readByLogin(login);
		ci = cid.readByClientID(c.getId());
		return EVAL_BODY_INCLUDE;
	}

	public int doAfterBody() throws JspTagException {
		logger.info("Client info tag After body");
		if (!c.isAdmin()){
			try {
				pageContext.getOut().write("<div class=");
				pageContext.getOut().write("\"post\"");
				pageContext.getOut().write(">");
				pageContext.getOut().write("<h1 class=");
				pageContext.getOut().write("\"title\"");
				pageContext.getOut().write(">");
				
				pageContext.getOut().write(login);
				
				pageContext.getOut().write("</h1>");
				pageContext.getOut().write("<div class=");
				pageContext.getOut().write("\"entry\"");
				pageContext.getOut().write(">");
				pageContext.getOut().write("<p><img src=\"");
				pageContext.getOut().write(pageContext.getServletContext().getContextPath()+
						ConfigurationManager.getInstance().getProperty(
						ConfigurationManager.IMAGE_PAGE_PATH)+"\"");
				pageContext.getOut().write("alt=\"\" width=");
				pageContext.getOut().write("\"140\"");
				pageContext.getOut().write("height=");
				pageContext.getOut().write("\"125\"");
				pageContext.getOut().write("class=");
				pageContext.getOut().write("\"left\"");
				pageContext.getOut().write("/>");
				
				
				pageContext.getOut().write("<form name=\"setUserInfo\" method=\"post\" action=\"../contr\">");
				pageContext.getOut().write("<input type=\"hidden\"  name=\"command\" value=\"setUserInfo\" />");
				pageContext.getOut().write("<fieldset>");
				
				pageContext.getOut().write("FIO:<br/> ");
				pageContext.getOut().write("<input type=\"text\" id=\"fio\" name=\"fio\" value=\"");
				pageContext.getOut().write(getClientFIO());
				pageContext.getOut().write("\" />");
				pageContext.getOut().write("<br/>");
				
				pageContext.getOut().write("Passport:<br/> ");
				pageContext.getOut().write("<input type=\"text\" id=\"passport\" name=\"passport\" value=\"");
				pageContext.getOut().write(getClientPassport());
				pageContext.getOut().write("\" />");
				pageContext.getOut().write("<br/>");
				
				pageContext.getOut().write("Telephone:<br/> ");
				pageContext.getOut().write("<input type=\"text\" id=\"telephone\" name=\"telephone\" value=\"");
				pageContext.getOut().write(getClientTel());
				pageContext.getOut().write("\" />");
				pageContext.getOut().write("<br/>");
				
				pageContext.getOut().write("Email: <br/>");
				pageContext.getOut().write("<input type=\"text\" id=\"email\" name=\"email\" value=\"");
				pageContext.getOut().write(getClientEmail());
				pageContext.getOut().write("\" />");
				pageContext.getOut().write("<br/>");
				
				pageContext.getOut().write("<input type=\"submit\" id=\"sCI\" value=\"Save Changes\" style=\"width:135px;\"/>");
				pageContext.getOut().write("</fieldset>");
				pageContext.getOut().write("</form>");
				
				pageContext.getOut().write("</p>");
				pageContext.getOut().write("<p>&nbsp;</p>");
				pageContext.getOut().write("</div>");
				pageContext.getOut().write("</div>");

		
				
			} catch (IOException e) {
				throw new JspTagException(e.getMessage());
			}
		}else{
			try {
				pageContext.getOut().write("<div class=");
				pageContext.getOut().write("\"post\"");
				pageContext.getOut().write(">");
				pageContext.getOut().write("<h1 class=");
				pageContext.getOut().write("\"title\"");
				pageContext.getOut().write(">");
				
				pageContext.getOut().write(login);
				
				pageContext.getOut().write("</h1>");
				pageContext.getOut().write("<div class=");
				pageContext.getOut().write("\"entry\"");
				pageContext.getOut().write(">");
				pageContext.getOut().write("<p><img src=");
				pageContext.getOut().write(pageContext.getServletContext().getContextPath()+
						ConfigurationManager.getInstance().getProperty(
						ConfigurationManager.IMAGE_PAGE_PATH)+"\"");
				pageContext.getOut().write("alt=\"\" width=");
				pageContext.getOut().write("\"140\"");
				pageContext.getOut().write("height=");
				pageContext.getOut().write("\"125\"");
				pageContext.getOut().write("class=");
				pageContext.getOut().write("\"left\"");
				pageContext.getOut().write("/>");
				
				pageContext.getOut().write("Greetings to you, Lord!");
				
				pageContext.getOut().write("</p>");
				pageContext.getOut().write("<p>&nbsp;</p>");
				pageContext.getOut().write("</div>");
				pageContext.getOut().write("</div>");
				pageContext.getOut().write("<br/>");
			} catch (IOException e) {
				logger.error("Error in client info tag");
			}
			
		}
			return SKIP_BODY;
	}

	public void setUser(String user) {
		this.login = new String(user);
	}
	
	public int doEndTag() throws JspTagException {
		return SKIP_BODY;
	}
	
	public String getClientEmail() {
		return c.getEmail();
	}
	
	public String getClientFIO() {		
		String str = "";
		str = ci.getFIO();
		return str;
	}
	
	public String getClientPassport() {
		String str = "";
		str = ci.getPassport();
		return str;
	}
	
	public String getClientTel() {
		String str = "";
		
		str = ci.getTel();
		return str;
	}
}

